FARIS Toolkit — User Guide (version 1.0)

FARIS Toolkit is a free MEP toolkit for Autodesk Revit 2024 and Revit 2025, made by Faris. It adds the FARIS TOOLS ribbon tab with 66 commands in 8 panels. This guide explains how to install it and how every command works.

FARIS Toolkit works offline. It needs no account and sends no data anywhere. Your settings, profiles, logs and reports are stored on your computer in %AppData%\FARIS Toolkit.

Installing and uninstalling

Requirements

Install with the installer (recommended)

  1. Close Revit.
  2. Run FARIS_Toolkit_Setup_1.0.exe. It installs for your Windows user only, so you don't need admin rights.
  3. This release is unsigned. A matching SHA-256 checks file integrity, not publisher identity. If Windows or Revit shows a warning, pause and verify the download and your organisation's approval. Keep security protections enabled.
  4. Start Revit only after the trust checks and any required IT approval.
  5. The FARIS TOOLS tab appears. Open a test project and run Utilities > Self-Test to check everything works.

The installer adds an Autodesk application bundle at %AppData%\Autodesk\ApplicationPlugins\FarisToolkit.bundle. It contains a build for each supported Revit version, and Revit loads the matching one automatically.

Install from the zip (alternative)

  1. Close Revit.
  2. Download FARIS_Toolkit_1.0_bundle.zip.
  3. Unzip the FarisToolkit.bundle folder into %AppData%\Autodesk\ApplicationPlugins (create the folder if it doesn't exist).
  4. Complete trust checks and any required IT approval before loading the add-in.

SHA256 checksums for both downloads are in SHA256SUMS.txt, published next to the downloads.

Update

Close Revit completely (check Task Manager for Revit.exe), then run the new installer. Your settings and profiles are kept.

Uninstall

  1. Close Revit.
  2. Open Windows Settings > Apps, find FARIS Toolkit for Revit 2024-2025 and choose Uninstall, or use Start menu > FARIS Toolkit > Uninstall. If you installed from the zip, delete the FarisToolkit.bundle folder.

Your settings, profiles, logs and reports in %AppData%\FARIS Toolkit are kept. Delete that folder if you don't need them.

Coming from a pre-release build

Pre-release builds kept their settings in %AppData%\BIMMEPToolkit. The first time FARIS Toolkit 1.0 runs, it copies them to %AppData%\FARIS Toolkit automatically. The old folder is left as it was; you can delete it once you're happy. Remove the old add-in (BIMMEPToolkit.addin and the BIMMEPToolkit folder in %AppData%\Autodesk\Revit\Addins\2025) so the tab isn't loaded twice.

Before you start

Workflow guidance

Profiles

A profile stores your naming patterns, scales, detail level, discipline, template rules, sheet numbering and schedules. Three editable starting profiles are provided: Data Centre MEP, General MEP and Custom. They're saved as JSON in %AppData%\FARIS Toolkit\profiles. To make your own, change settings in the wizard and press Save or Save as... on step 1. You can copy profile files to colleagues.

Naming tokens: {Level} {Discipline} {DisciplineCode} {Zone} {ProjectNumber} {Direction} {Category}. Empty tokens are cleaned up automatically. For example, with Zone empty, ME_{Zone}_L01 becomes ME_L01.


Project Setup panel

Project Setup Wizard (main tool)

An eight-step guided setup. Use Next / Back to move between steps. Nothing changes before step 7.

  1. Project Profile: choose a profile and enter the project name and number. Tick Write to Project Information if you want those values written to the project. Also set the discipline and code, zone, default unit, the "if an item already exists" option and preserve standards.
  2. Levels: enter levels in the table, or use Load existing levels or Add typical levels... (prefix, count, start elevation, floor-to-floor height). Tick Floor plan / Ceiling plan for each level that needs plans. Validate checks:
  3. duplicate names and illegal characters
  4. non-numeric elevations (use a dot for decimals)
  5. bad units
  6. levels that already exist (they're reused)
  7. duplicate or suspiciously close elevations
  8. View Generation: tick the view kinds to create:
  9. floor plans
  10. ceiling plans
  11. per-level working 3D views, with a section box from the level to the level above
  12. a coordination 3D view
  13. N/E/S/W building elevations, with markers placed outside the model extents on a chosen level's floor plan
  14. long and cross sections through the model centre

Then set the naming pattern and view type for each, plus scale, detail level, discipline, Sub-Discipline and crop. Sub-Discipline (for example HVAC) is written to every new view, so it's filed under the right folder in a Project Browser organised by Discipline / Sub-Discipline. Leave it empty to skip. New elevations get Far Clipping = No clip. After each elevation or section is created, the toolkit checks that every level shows in it. Missing levels are extended (Maximize 3D Extents) when Preserve existing project standards is off; otherwise they're reported. Sections are made tall enough to show every level. 4. View Templates: for each view kind, choose one of: - None - Existing, which applies a compatible project template - CreateFromGenerated, which makes a new template from the first new view - Duplicate, which copies a template under a new name

Templates are applied only to views created in this run. Existing templates are never overwritten. Inspect templates... lists every template with its usage count. 5. Project Browser: shows the current Browser Organization for views and sheets. Optionally adds the text parameters BMT_Discipline and BMT_Purpose (Working / Coordination / Documentation) to views and sheets, and fills them in on new items. These names (and their shared parameter group, BIM MEP TOOLKIT) are kept from earlier versions because they're stored in your models. Revit's API can't create organization schemes, so this step also gives the exact manual steps. 6. Sheets & Schedules: pick a title block, generate numbered sheets (one per level, or a fixed count) or type them in, and tick the standard schedules to create. Existing sheet numbers are never renumbered. 7. Preview and Confirm: the full plan. Invalid rows are skipped. Press Execute... and confirm. 8. Results Report: what was created, reused, skipped or modified, plus errors, warnings and manual steps.

Level Manager

Loads the existing levels. Add or validate new ones and tick the plans each level needs. Then preview, execute and see the report. Only levels and plans are created.

Generate Plan Views

Loads the existing levels; tick Floor plan / Ceiling plan for the levels you want. Set the naming pattern, view type, scale and detail, and optionally a template. Views with the same name are reused, never duplicated.

Generate 3D Views

Creates one working 3D view for each level row, with a section box from the level to the level above. Remove rows you don't need. It can also create one coordination 3D view.

Elevations & Sections

Creates N/E/S/W elevations (choose the level whose floor plan hosts the markers) and long and cross sections. Far clipping is set to No clip and every level is checked for visibility (see step 3 above). The crop region uses Revit's default, so check it.

View Template Builder

Lists templates with their view type and usage, and flags unused ones. Two actions are available: - Create from view...: pick a view and give the template a new name. - Duplicate selected...: copy a template under a new name. If Revit refuses to duplicate it through the API, you get the manual steps instead.

Existing templates are never edited or overwritten.

Apply View Templates

Filter the views by type and name, or show only views without a template. Tick the views and pick a template, then Check compatibility. Each row shows OK, INCOMPATIBLE, already uses it, or has another template. A template only fits views of the same kind: plans, ceiling plans, elevations and sections, or 3D. A Floor Plan template on a 3D view is INCOMPATIBLE and skipped. Views with a different template are only replaced if you tick replace. Then Apply..., confirm, and you get a report.

View Naming Manager

Rename the ticked views using one of these operations: - a Pattern ({Name} {Level} {Type} {Scale} {Template} {Discipline} {DisciplineCode} {Zone}) - Find / replace - prefix or suffix - UPPERCASE, lowercase or Title Case

Preview names flags invalid characters, unchanged names, conflicts with other views of the same type, and duplicates within the batch. Only rows marked OK are renamed.

Browser Setup Assistant

The Project Browser step on its own: a report, optional BMT parameters and the manual steps.

Sheet Setup Generator

The Sheets & Schedules step on its own.

Setup Summary Report (read-only)

Shows: - project info and whether the model is workshared or in the cloud - each level with its elevation, number of floor and ceiling plans, and a warning if it has no floor plan - view counts by type, and how many views have no template - templates, including unused ones - sheets, including sheets with no views - title blocks and schedules - browser organization and BMT parameters - worksets

Checks: how they work

Every check (Release 2A, plus the read-only tools marked below) is read-only. It never changes the model. You get: 1. An options window, with: - Scope: whole model, active view, or current selection - Categories to include - any rules the check needs

The options are remembered for next time. 2. A results report. The status line reads CHECK COMPLETE – N issues found, and each finding is an orange Warning row with the element id. Select & Zoom takes you to it, and Save Excel... / Save CSV... export the list. A very long list is cut off at 5,000 rows, but the summary still counts every issue.

Editing tools (Release 2B–4): how they work

Every tool that changes the model follows the same steps: 1. An options window (scope, categories, rules). Options are remembered in %AppData%\FARIS Toolkit\checks. 2. A preview with one row per change (before → after). Rows that can't be done are listed with the reason and not ticked. Untick any row you don't want, and tick All or nothing to roll back the whole run if one item fails. 3. One transaction, so the whole run is one Ctrl+Z. Each item runs in its own sub-step, so one failure doesn't undo the others (unless All or nothing is ticked). 4. A results report (Modified / Created / Skipped / Error rows with element ids, Select & Zoom, Save Excel / CSV).

Numbers are typed in millimetres (or project units where noted), with a dot for decimals.

Element naming tokens (Bulk Edit Pattern, Naming Rules, Mark Numbers): {Level} {Category} {Family} {Type} {System} {SystemAbbr} {Mark} {Seq} {P:Parameter name}.

QA/QC panel

Model Health Audit

Covers: - Revit warnings grouped by type, with an example element for each - file size - in-place families - imported (not linked) CAD - Revit links that aren't loaded - groups, including unused group types - design options - MEP spaces that aren't placed or enclosed - view and template counts

It asks first whether to count purgeable elements, because Revit's purge analysis can take minutes on big models. The toolkit never purges anything.

Unconnected End Checker

Lists every open duct, pipe, cable tray or conduit end, including fittings and equipment ports, with its size, position and level. You can choose HVAC / Piping / Tray & conduit connectors. Caps count as connected. Electrical power connections are circuits, so they aren't checked here.

System Assignment Checker

Finds: - ducts and pipes with no system or no system type - fittings, accessories, terminals and equipment whose duct or pipe connectors aren't in a system

It shows "n of m connectors" when only some are missing.

Duplicate Element Finder

Finds elements with the same category, same type and same position, within the tolerance (default 1 mm). For family instances, orientation must match too. Each group shows the original (lowest id) as Info and the copies as Warnings. Nothing is deleted: review each group and delete the copies yourself. Limitations: - Two elements that sit either side of a tolerance step can be missed (for example 0.49 mm and 0.51 mm apart at 1 mm). - Pipes that partly overlap but don't share both ends aren't detected.

Size & Elevation Checker

A rules table with one row per category (Pipes, Ducts, Cable Trays, Conduits, Flex): - Min/Max size (mm): diameter, or width for rectangular ducts and trays. - Min bottom height / Max top height (mm): measured from the run's reference level to its underside or top. Outer diameter is used for pipes and conduits. - System contains: limits the rule to systems whose name contains the text.

Leave a cell empty to skip that rule.

Workset Compliance Checker

Workshared models only. Rules are category → expected workset. Optionally, it also flags MEP elements left on Workset1 or Shared Levels and Grids.

Template Compliance Checker

Flags plans, 3D views, elevations and sections that have no template, or a template meant for a different kind of view. Rules (view type + name contains → expected template) add project-specific checks. Use Ignore views containing to skip working views.

Pre-Sync Audit

A one-click summary to run before Sync with Central: - Revit warnings - open duct and pipe ends - MEP elements without a system - imported CAD - worksets editable by you, and MEP elements owned by you - MEP elements on default worksets - unsaved changes

Each line points to the detailed check.

Data & Parameters panel

Missing Data Checker

Tick the categories and type the required parameter names, one per line. Each element with an empty value is listed. It looks for an instance parameter first, then the type parameter. A parameter that doesn't exist on a category is reported once, not per element.

Excel Export

  1. Tick the categories.
  2. Click Load parameters from the ticked categories.
  3. Tick the parameters to export.
  4. Choose a file name.

Columns: UniqueId, Element Id, Category, Family, Type, Level, then your parameters. Values are written as Revit shows them, in project units. Text such as 0012 stays as text. The header row is bold, frozen and filterable, with one worksheet per category (optional). Keep the UniqueId column if you plan to re-import with Excel Import.

Bulk Parameter Editor

Changes one parameter on many elements (scope: selection, active view or whole model; ticked categories). Load names fills the parameter list from the elements. Operations: Set to, Clear, Find / replace, Add prefix, Add suffix (not added twice), Copy from parameter (value as Revit shows it), Pattern (element tokens). Options: Only where the parameter is empty; Allow type parameters (a type value changes every instance of that type; each type is written once). Read-only and calculated parameters are skipped and listed. Numbers are typed as in Properties (project units, e.g. 300 for 300 mm).

Parameter Mapping

A rules table: source parameter → target parameter, with a mode per rule: - Copy, or Copy if target empty - Map values, using a value map such as CHW=Chilled Water; HHW=Heating Hot Water; *=Other. Matching isn't case-sensitive; * is the default. Without *, unmatched values are skipped.

Elements without the source parameter are listed. Tick Allow type parameters as target to write type parameters.

Excel Import

Reads an .xlsx (every worksheet) or .csv (comma or semicolon) file, normally one written by Excel Export. - Rows are matched by UniqueId, or by Element Id when there is no UniqueId. A sheet with neither column is skipped. - Every other column header is a parameter name. The fixed columns (Category, Family, Type, Level) are ignored. - You're asked whether to write type parameters too (No = they're listed but skipped). - Only cells that differ from the model appear in the preview. Rows whose element isn't in this model are reported as warnings.

Values are validated like typed input: read-only parameters and values that don't fit the parameter type are skipped and listed.

Naming Convention Tool

Checks or applies a naming rule to a parameter (Mark, Comments, Type Mark or any typed name). Default pattern {Category}-{Level}-{Seq}. {Seq} has a start, number of digits (0–8) and step. Numbering can restart on each level and/or for each different prefix. Only elements where the parameter is empty leaves filled values alone. Check only lists the elements whose current value doesn't match the rule (read-only). Otherwise you get a preview of the new values.

Mark Numbering

The same engine as Naming Convention, for numbering (default {SystemAbbr}-{Level}-{Seq}, written to Mark). Elements are numbered level by level, then in rows top to bottom, then left to right. A value given to more than one element is flagged in the preview ("value used more than once") but not blocked.

Workset Organizer

Workshared models only. Moves elements to the workset set for their category, using the same rules as Workset Compliance Checker (category → workset), across the whole model. Elements already on the right workset aren't listed. Elements borrowed by another user, and elements whose workset can't be changed (for example hosted or in a group), are skipped and listed.

Views & Display panel

View Template Audit

For every template it shows: - how many views use it, and how many settings it controls - unused templates (one that a view type assigns to new views is kept and noted) - views using a template meant for another view type - look-alike names, such as "Mech Plan" and "Mech Plan Copy 1"

View Cleanup (find only)

Finds: - views not placed on any sheet (a parent view counts as placed when one of its dependent views is) - default or copied names, such as Section 1, Copy of..., ... Copy 2, or {3D} 1 - sheets with no views or schedules - optionally, schedules not on any sheet

Legends, panel schedules and reports are skipped. Nothing is deleted.

MEP View Filter Builder

Creates one view filter per ticked system type, named FT_P_<type> (piping) or FT_D_<type> (ductwork), with the rule System Type equals . Piping filters cover pipes, fittings, accessories, flex pipes and pipe insulation; duct filters cover ducts, fittings, accessories, flex ducts, air terminals, insulation and lining. A filter with the same name is reused, never changed. This tool only creates filters; System Visibility and Color by System put them on views.

System Visibility Manager

Tick the views and system types, then Show or Hide the ticked systems, optionally ...and hide every other system. Missing FT_ filters are created first. If a view's template controls filters, the view is skipped unless you tick change the template (then the template is changed once, which affects every view using it). Views that don't support filters are skipped.

Color by System

Same window and template rule as System Visibility. Each ticked system gets its system type's Line Color (when one is set and isn't black), otherwise a distinct palette colour. Projection and cut lines are coloured; Solid fill also fills surfaces and cut patterns (needs a solid drafting fill pattern in the project; otherwise only lines are coloured and a warning is shown).

View Crop Assistant

Tick views and choose Crop to: MEP elements in the view, Everything in the view, Model extents or Scope box, with a margin (mm). Works on plans, ceiling plans, sections, elevations, detail and area views. The crop region is switched on and shown. Only the crop outline changes, not the view depth. A view that already has a scope box is skipped unless you choose Scope box. Views whose scope box parameter is locked (for example by a template) are skipped.

MEP Modeling panel

The first six tools are in the Create drop-down.

Line-to-Pipe / Line-to-Duct

Select straight model or detail lines (or pick them when the command starts); arcs are skipped. Choose the pipe/duct type, system type, reference level and size (pipe diameter; duct width and height, or height 0 for a round duct of that diameter), and the middle height above the level, or tick Use each line's own height for 3D lines. Join runs that meet end-to-end adds elbows (or a direct connection for straight continuations) where two new runs share an end within 5 mm, using the type's routing preferences. Delete the lines afterwards only deletes them if every line converted. Lines shorter than 50 mm are skipped.

Batch Pipe Creator / Batch Duct Creator

Creates runs from an .xlsx or .csv table. Save an empty template gives the columns: - Pipes: X1 Y1 Z1 X2 Y2 Z2 Diameter, Pipe Type, System Type, Level - Ducts: X1 Y1 Z1 X2 Y2 Z2 Width, Height, Diameter, Duct Type, System Type, Level

Coordinates are in mm from the project internal origin; Z is measured from the row's level. Type, system and level are matched by name (empty = the first one in the project). Rows with bad numbers, unknown names or runs under 50 mm are listed and skipped. The runs aren't joined to each other.

Equipment Array

Select (or pick) one family instance and enter rows × columns (up to 2,000 copies) and the X / Y spacing in mm (negative = left / down, along the project X and Y axes). Row 1, column 1 is the original. The copies are independent elements with the same type and parameter values, not a Revit array group.

Copy with Parameters

Pick the source element, then the target elements and Finish. Tick the source's writable instance parameters to copy (their values are shown). Only parameters the target also has are changed; read-only ones are skipped. The ticked list is remembered.

Pipe/Duct Elevation Editor

Select pipes, ducts, cable trays or conduits. Measure at the Middle, Bottom or Top (outside size), then Set height (above each run's reference level) or Move up/down by. Sloped and vertical runs are skipped. Connected fittings follow when Revit can; a run that can't move is reported.

Routing Assistant

Select the equipment or terminals and the main pipe(s) or duct(s), then run it. Each open pipe or duct connector is routed to the nearest selected main of the same kind: a vertical run to the main's height, an elbow, then a horizontal run at right angles to the main, joined with a tap (takeoff); if Revit can't add a tap, the main is split and a tee is used. New runs use the main's type and system, sized to the equipment connector. Sloped mains are skipped. Each route is its own sub-step, so a failed route doesn't undo the others. Limits: horizontal mains only, and only this straight drop + branch shape (no obstacle avoidance).

Connector Checker (read-only)

For every connected pair of duct, pipe, tray or conduit connectors in the scope, it reports: different shapes, size mismatch, gap over 1 mm between connectors, connectors not facing each other (with the angle), and different system types. Open ends are covered by Open Ends.

Insulation Assistant

Rules: kind (Pipes / Ducts), system name contains (empty = any), min/max size in mm (diameter, or width for rectangular), insulation type and thickness. The first matching rule wins. Actions: Add or update (changes the thickness, or replaces insulation of another type), Add only (skips insulated runs) or Remove. Applies to pipe and duct runs in the scope; Revit insulates their fittings where the type allows.

Documentation panel

Batch Sheets, Place Views and Sheet Audit are in the Sheets drop-down.

Batch Tagger

Tags every element of the ticked categories visible in the active view (or only the selected ones). The view must be a plan, ceiling plan, section, elevation, detail or locked 3D view. - Uses the default tag type loaded for each category. When a category has no tag of its own but a multi-category tag is loaded, that is used instead; otherwise the element is skipped with "load one". - Options: with leader, vertical, offset (printed mm, tag head moved up from the element centre), skip runs shorter than a length (default 300 mm), skip elements already tagged in this view.

Tags are placed at the element's centre, so check for overlaps afterwards.

Missing Tag Checker (read-only)

Lists elements of the ticked categories, visible in the active view (plan, section, elevation or locked 3D), that have no tag in that view (short runs can be ignored). Each category gets a summary line, which also says when no tag family for it is loaded.

Schedule Generator

One row per schedule: category, name, fields (separated by ;, as named in Revit's Schedule Properties) and the field to sort by. Option: itemize every instance. Starts with four example rows (duct, pipe, air terminal and equipment schedules). Names that already exist are skipped. Fields the category doesn't have are reported as warnings. The first new schedule opens afterwards.

Batch Sheet Creator

Creates sheets from an .xlsx/.csv table with Sheet Number, Sheet Name and Title Block (Family : Type or the type name; empty = the first loaded title block; none = no title block). Any extra column is written to the sheet parameter of the same name (for example Drawn By); values that can't be set are warnings. Existing and repeated sheet numbers are skipped. Save an empty template writes a ready table.

Place Views on Sheets

Three ways in: - Pick views for one sheet: choose the sheet (the active sheet is preselected) and tick the views. - Use a table with Sheet Number and View Name (add View Type when names repeat). - Save a template listing the views not yet placed, plus a list of sheets.

Views already on a sheet aren't offered; schedules and legends can repeat. New views are placed in a row centred on the title block. If the sheet already had views, the report reminds you to check for overlaps.

Sheet Number Auditor (read-only)

Checks every sheet for: an optional number pattern (regular expression, e.g. ^[A-Z]{1,2}-\d{3}$), gaps in number series (M-101, M-103 → M-102 missing; per prefix, at most 50 per series), sheets without a title block, sheets with no views or schedules, leading/trailing spaces, missing names and duplicate names. Placeholder sheets are listed as info.

Documentation Export (PDF / DWG)

Choose Sheets or Views, tick the items (the current selection is pre-ticked), the formats and the folder (default Documents\FARIS Export). - File name pattern tokens: {Number} {Name} {Revision} (the sheet's current revision) {Project} (project number, or the file name when empty) {Date} (yyyyMMdd). Default {Number} - {Name}. Illegal characters become _. - PDF: one file per sheet/view, or Combine all PDFs into one file with its own name pattern; colour or black lines. Crop boundaries, scope boxes and reference planes are hidden. - DWG: uses a saved DWG export setup or Revit's default, one file per sheet/view. - Existing files are skipped unless Overwrite is ticked. Nothing in the model changes.

Coordination panel

Find Sleeves and Place Sleeves are in the Sleeves drop-down; Colour Coord and Coord Views in Coord Views. The three checks (Clashes, Clearance, Find Sleeves) save their last results to %AppData%\FARIS Toolkit\checks\issues_<kind>.json for the Issue Report Exporter. Each run replaces the previous list of that kind.

Clash Candidate Finder (read-only)

Checks MEP elements of the ticked categories (in the scope) against the Check against categories (walls, floors, framing, columns, ceilings, roofs, stairs, doors, windows and MEP categories) in the host model and/or loaded links. Exact geometry test checks solid intersections (slower); untick it to report bounding-box overlaps only. Box tolerance grows the search box (mm). MEP elements connected to each other (directly or through fittings) aren't reported against each other, and each pair is reported once. The results are geometry-intersection candidates to review, not verified clashes.

Clearance Checker (read-only)

Measures the gap between the outsides of every pair of straight ducts, flex ducts, pipes, flex pipes, cable trays and conduits in the scope: centreline distance minus half sizes, using outer diameters, plus insulation thickness when Include insulation is ticked. Pairs closer than the minimum clearance (default 25 mm) are listed, closest first; a negative gap is an overlap. Runs connected directly or through one fitting are ignored. Host model only; fittings and equipment aren't measured.

Sleeve Candidate Finder (read-only)

Finds where straight pipes, ducts, trays and conduits pass through walls, floors, structural framing, roofs or ceilings in the host model and/or loaded links. Each crossing gets a sleeve size: outside size + insulation (optional) + clearance each side, rounded up to the step (both default 25 mm), and the host thickness. A crossing that already has a family named "sleeve" or "opening" (host model) is shown as info.

Sleeve Placement Assistant

Same options as Sleeve Candidate Finder, plus: - Horizontal sleeve family (and whether its length runs along the family's X or Y axis) and Vertical sleeve family (length along Z). Only non-hosted, level-based or work-plane-based families are offered (families named "sleeve" first). - The instance parameter names for diameter, width, height and length, and extend each end (mm).

Each sleeve is placed in the host model at the centre of the crossing (on the level below), rotated about Z to the run for horizontal sleeves, and sized: diameter for round runs, width and height for rectangular ones, length = host thickness + extensions. Crossings with an existing sleeve, without a chosen family, or with an unknown run size are skipped. A missing or read-only parameter is a warning (the sleeve is still placed).

Linked Model Inspector (read-only)

For each Revit link: status, path and path type, number of instances (more than one is a warning), Overlay or Attachment, nested links. For each instance: pinned or not, offset and rotation, workset, levels that have the same name as a host level but a different elevation, the main categories and counts, and the number of warnings inside the link. CAD: imported CAD is a warning; linked CAD shows whether it's current-view-only or unpinned.

Coordination Colorizer

Colours whole categories or whole linked models in the active view (plan, section, elevation or 3D). Rules: target, colour (a name from the list or R,G,B), transparency %, halftone. Lines and solid surface/cut fill take the colour. Reset listed targets clears the overrides of the listed rows. Category colours go on the view; if its template controls Visibility/Graphics, those rows are skipped unless you tick change the template (which affects every view using it). Links are coloured as element overrides in the view.

Coordination View Generator

Creates one 3D view per ticked level (section box from a set distance below the level, default 300 mm, to the next level up or +4 m above the top level, across the model extents plus a margin, default 1000 mm) or per scope box (section box = the scope box). Views are named prefix + name (default COORD -), detail level Fine, with an optional 3D view template. An existing 3D view with the same name gets its section box updated (if ticked) or is skipped. The first new view opens afterwards.

Issue Report Exporter

Lists the saved issue lists (Clash, Clearance, Sleeve, with model and date) and writes the ticked ones to Excel, one sheet per check. Columns: Issue (e.g. CL-001), Type, Status (Open, or Element A deleted), element A (id, category, type, system, level), element B (id, model, category, type), X/Y/Z (mm), Description, Issue View, Assigned To, Comments. Optionally creates a 3D view per issue with a cube section box around it (box size default 1500 mm, at most N views, name prefix ISSUE-); the view name is written to the list. Lists made in another model are flagged before views are created for them.

Project Setup panel (additions)

Project Standards Audit

Pick a profile. The audit checks that: - every level has its profile-named floor plan - views of the profile's discipline follow the profile's naming patterns and Sub-Discipline - the profile's templates, title block and schedules exist - sheets that use the profile prefix have the right number of digits

Utilities panel

The Toolkit drop-down holds: - Command History: what ran, when, on which document, and the result. - Tool Settings: open the settings, profiles, logs and reports folders, and restore the default profiles. - Compatibility Check: Revit and .NET versions, add-in path, whether the settings folder is writable, the other add-ins found (listed only, never changed), and the document type and units. It also warns when the open model is workshared or a cloud model.

Self-Test (Utilities)

Runs 39 automated tests of the toolkit's logic inside the open project: geometry and sleeve maths, value maps, Excel/CSV read-write, issue lists, creating and joining pipes and ducts, open ends, duplicates, parameter writing, numbering, insulation, clearance, clashes, sleeves (placement uses any loaded level-based family), system filters, colour overrides, crop, tags, schedules, sheets, view placement, PDF/DWG export and coordination 3D views. - It creates temporary pipes, ducts, a wall, views, a sheet, a schedule, filters and tags far from your model, inside one TransactionGroup that is rolled back at the end. The last test confirms every temporary element is gone. - Finish any edit first and use a test project. It takes up to a minute. On a workshared model nothing is synchronised. - Each test is PASS, FAIL (with the error) or SKIP (something the project lacks, e.g. no suitable family). The report opens, and the results are saved to %AppData%\FARIS Toolkit\selftest\SelfTest_<date>.txt and SelfTest_latest.txt. Send that file with any bug report.

Files written by the toolkit (%AppData%\FARIS Toolkit)

Path Contents
profiles\*.json Your profiles
logs\FARIS_yyyyMMdd.log Command start/end, counts, errors. No credentials or model content.
reports\*.csv Every results report
history.jsonl Command history
checks\*.json Last options of each tool, and issues_clash/clearance/sleeve.json (last coordination results, used by Issue Report Exporter)
selftest\SelfTest_*.txt Self-Test results (SelfTest_latest.txt is the newest)
BMT_SharedParameters.txt Used only when adding BMT_Discipline / BMT_Purpose. Your own shared parameter file setting is restored straight afterwards.

Tips from testing